home *** CD-ROM | disk | FTP | other *** search
/ CD Ware Multimedia 1995 May / cd Ware (Juegos) Epimundo.iso / DOS / C / SCL1.ZIP / DOC31.EXE / SSG30.DOC < prev   
Encoding:
Text File  |  1992-01-01  |  91.1 KB  |  2,299 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.                       SSG - SCREEN EDITOR AND PROGRAM GENERATOR
  29.                                      Version 3.0
  30.  
  31.  
  32.                                    REFERENCE MANUAL
  33.  
  34.                          COPYRIGHT (C) 1989,1990 and 1991 BY:
  35.  
  36.                                 JOSE RODRIGUEZ ALVIRA
  37.                                          AND
  38.                                     JOSE R. LEBRON
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.                                   TABLE OF CONTENTS
  48.  
  49.           OVERVIEW  . . . . . . . . . . . . . . . . . . . . . . . . . .   1
  50.  
  51.           HARDWARE REQUIREMENTS . . . . . . . . . . . . . . . . . . . .   1
  52.  
  53.           INSTALLING SSG  . . . . . . . . . . . . . . . . . . . . . . .   1
  54.  
  55.           STARTING SSG  . . . . . . . . . . . . . . . . . . . . . . . .   2
  56.  
  57.           THE STATUS BOX  . . . . . . . . . . . . . . . . . . . . . . .   2
  58.                Moving the STATUS BOX: . . . . . . . . . . . . . . . . .   2
  59.                Turning STATUS BOX on and off: . . . . . . . . . . . . .   2
  60.                STATUS BOX First Line: . . . . . . . . . . . . . . . . .   2
  61.                STATUS BOX Second Line:  . . . . . . . . . . . . . . . .   3
  62.                STATUS BOX third, fourth fifth and sixth Lines:  . . . .   3
  63.  
  64.           THE SSG EDITOR  . . . . . . . . . . . . . . . . . . . . . . .   3
  65.                Writing a character or symbol: . . . . . . . . . . . . .   3
  66.                Moving the cursor: . . . . . . . . . . . . . . . . . . .   4
  67.                Changing the cursor movement direction:  . . . . . . . .   4
  68.                Block operations:  . . . . . . . . . . . . . . . . . . .   4
  69.  
  70.           SSG MENUS . . . . . . . . . . . . . . . . . . . . . . . . . .   5
  71.                Main Menu  . . . . . . . . . . . . . . . . . . . . . . .   5
  72.                     Load  . . . . . . . . . . . . . . . . . . . . . . .   5
  73.                     Save  . . . . . . . . . . . . . . . . . . . . . . .   6
  74.                     New . . . . . . . . . . . . . . . . . . . . . . . .   6
  75.                     Import ASCII  . . . . . . . . . . . . . . . . . . .   6
  76.                     Save ASCII  . . . . . . . . . . . . . . . . . . . .   6
  77.                     Save SSG 1.0  . . . . . . . . . . . . . . . . . . .   6
  78.                     Quit  . . . . . . . . . . . . . . . . . . . . . . .   6
  79.                     DOS Shell . . . . . . . . . . . . . . . . . . . . .   6
  80.                     Options . . . . . . . . . . . . . . . . . . . . . .   7
  81.                Edit Menu  . . . . . . . . . . . . . . . . . . . . . . .   7
  82.                     Center Block  . . . . . . . . . . . . . . . . . . .   7
  83.                     Copy Block  . . . . . . . . . . . . . . . . . . . .   8
  84.                     Delete Block  . . . . . . . . . . . . . . . . . . .   8
  85.                     Fill Block  . . . . . . . . . . . . . . . . . . . .   8
  86.                     Move Block  . . . . . . . . . . . . . . . . . . . .   8
  87.                     Shadow Block  . . . . . . . . . . . . . . . . . . .   8
  88.                     Transfer Block  . . . . . . . . . . . . . . . . . .   9
  89.                     Draw Box  . . . . . . . . . . . . . . . . . . . . .   9
  90.                     Draw Line . . . . . . . . . . . . . . . . . . . . .   9
  91.                     Draw Box Line . . . . . . . . . . . . . . . . . . .   9
  92.                Source Menu  . . . . . . . . . . . . . . . . . . . . . .   9
  93.                     Define Color Variables  . . . . . . . . . . . . . .   9
  94.                     Generate Screen . . . . . . . . . . . . . . . . . .  10
  95.                     Generating Source Files . . . . . . . . . . . . . .  12
  96.  
  97.  
  98.                     SSG Version 3.0 - Reference Manual - Page -i-
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.                Video Menu . . . . . . . . . . . . . . . . . . . . . . .  20
  108.                     Select Color  . . . . . . . . . . . . . . . . . . .  20
  109.                     Pick Screen Color . . . . . . . . . . . . . . . . .  20
  110.                     Modify Block Color  . . . . . . . . . . . . . . . .  21
  111.                     Block to Default Color  . . . . . . . . . . . . . .  21
  112.                     Switch Screen . . . . . . . . . . . . . . . . . . .  21
  113.                     View  . . . . . . . . . . . . . . . . . . . . . . .  21
  114.                     Change Video Mode . . . . . . . . . . . . . . . . .  21
  115.                     Modify Palette . . . . . . . . . . . . . . . . . . . 21
  116.                     Modify Character Set . . . . . . . . . . . . . . . . 22
  117.  
  118.           STEP BY STEP EXAMPLE  . . . . . . . . . . . . . . . . . . . .  23
  119.                Example #1 - Menu  . . . . . . . . . . . . . . . . . . .  23
  120.                Example #2 - MenuSystem  . . . . . . . . . . . . . . . .  25
  121.                Example #3 - Fields2 . . . . . . . . . . . . . . . . . .  28
  122.  
  123.           Appendix "A" . . . . . . . . . . . . . . . . . . . . . . . . . 32
  124.  
  125.           LICENSE . . . . . . . . . . . . . . . . . . . . . . . . . . .  36
  126.  
  127.           DISCLAIMER  . . . . . . . . . . . . . . . . . . . . . . . . .  36
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.                     SSG Version 3.0 - Reference Manual - Page -ii-
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.                                        OVERVIEW
  168.  
  169.           SSG (SCL1 Screen Generator) is a full-screen, extended ASCII
  170.           editor that will help you design your programs screens.  With SSG
  171.           you can draw, copy and move blocks of text, including boxes drawn
  172.           using text characters.  Full control of the screen's appearance
  173.           is possible.  SSG incorporates a character editor that lets you
  174.           build you custom character sets (for EGA and VGA displays).  Once
  175.           you are satisfied with the screen, SSG will help you generate the
  176.           data, structures and code from the information of your screens
  177.           for use in programs written using the SCL1 Library functions.  In
  178.           fact, complete ready to compile programs can be generated with
  179.           SSG.  SSG has color and mouse support and can save and load your
  180.           program's screen files with full color information.  Text video
  181.           modes such as 80 x 25 and 40 x 25 as well as VGA 80 X 28, EGA 80
  182.           x 43 and VGA 80 x 50 modes are supported.  You will have full
  183.           control of the generated source by indicating SSG exactly how you
  184.           want the code written.
  185.  
  186.           This document will guide you through the creation of screens and
  187.           the generation of source code from the screens.  SSG is easy to
  188.           use but, in order to get the most out of it, you must learn how
  189.           to make use of all its features.  The time you spend learning SSG
  190.           will save you a lot of programming time.
  191.  
  192.  
  193.                                 HARDWARE REQUIREMENTS
  194.  
  195.           SSG will run in most MS/PC DOS computers.  The program requires
  196.           at least 320K of free memory and DOS 2.0 and above.  No graphics
  197.           display adapter is required if you use SSG to work only with text
  198.           mode screens, however a VGA or EGA display adapter is required to
  199.           modify character sets.  A mouse is recommended but it is not
  200.           absolutely necessary to use SSG (except to modify character
  201.           sets), though with the mouse, the screen editing can be easier
  202.           and faster.
  203.  
  204.  
  205.                                     INSTALLING SSG
  206.  
  207.           There is no need to perform a special installation of SSG.  The
  208.           program is contained in one file.  SSG will write a configuration
  209.           file containing the default parameters and color information. 
  210.           The only installation required is to copy the SSG.EXE file to the
  211.           working directory or disk.
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.                     SSG Version 3.0 - Reference Manual - Page -1-
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.                                      STARTING SSG
  227.  
  228.           To start SSG, type SSG (specify program file drive and path if
  229.           necessary) and press ENTER.  Once you see SSG's welcome screen,
  230.           press any key or press the mouse's left button to begin.  The
  231.           screen will clear and the STATUS BOX will appear in the lower
  232.           left corner of the screen.
  233.  
  234.  
  235.                                       USING SSG
  236.  
  237.           THE STATUS BOX
  238.  
  239.           The STATUS BOX is your interface with the program, it will give
  240.           you very important information and will let you select the
  241.           various options available.  The STATUS BOX will look like this:
  242.  
  243.  
  244.                     +-------------|STATUS BOX|-------------+
  245.           1st Line  |  Main  Edit  Source  Video  F1 Help  | <-- Menu
  246.           2nd Line  | CURSOR 0  0 ->   MOUSE 0  0    +---+ |
  247.           3rd Line  |   ABCDEFGHIJKLMNOPQRSTUVWXYZ   |   | | <-- Current
  248.           4th Line  | ^                              +---+ |     Character
  249.                     |                                +---+ |
  250.           5th Line  |   abcdefghijklmnopqrstuvwxyz   |   | | <-- Block
  251.           6th Line  |                                +---+ |     Icon
  252.                     +--------------------------------------+
  253.  
  254.  
  255.                Moving the STATUS BOX:
  256.  
  257.                The STATUS BOX can be moved to any place in the screen by
  258.                pressing the ALT+U, D, R or L (for up, down, right and left)
  259.                key combinations.  You can also move it by pressing (and
  260.                keeping pressed) the mouse's left button after pointing to
  261.                the STATUS BOX title at the top of the box and dragging the
  262.                mouse.
  263.  
  264.                Turning STATUS BOX on and off:
  265.  
  266.                The STATUS BOX can be turned on or off by pressing the F9
  267.                key or by clicking the mouse's right button.
  268.  
  269.                STATUS BOX First Line:
  270.  
  271.                The STATUS BOX's first line contains the available menus. 
  272.                Four menus are included; Main, Edit Source and Video.  You
  273.                can also ask for help with the Help option.
  274.  
  275.  
  276.  
  277.  
  278.                     SSG Version 3.0 - Reference Manual - Page -2-
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.                STATUS BOX Second Line:
  287.  
  288.                The STATUS BOX's second line contains the following:
  289.  
  290.                     CURSOR - Displays the current text cursor position. 
  291.                     The screen's right top corner coordinates are 0,0.
  292.  
  293.                     CURSOR DIRECTION - The arrow between the text cursor
  294.                     status marker and the mouse cursor status marker shows
  295.                     the direction the cursor will move after writing a
  296.                     character.
  297.  
  298.                     MOUSE - Displays the mouse cursor position.
  299.  
  300.                     CURRENT CHARACTER BOX - Shows the selected character.
  301.  
  302.                STATUS BOX third, fourth fifth and sixth Lines:
  303.  
  304.                     The third row and fifth lines show the keyboard layout,
  305.                     these lines are static.  Below each keyboard character
  306.                     the corresponding character that will be drawn is
  307.                     shown.  This translation table shows which symbol is
  308.                     assigned to which keyboard key.  For example, in the
  309.                     startup translation table, if you press "A" a vertical
  310.                     line will appear at the cursor position.  After typing
  311.                     a character the cursor will move up, down, left or
  312.                     right depending on how you have set the current cursor
  313.                     direction option.  You have four keyboard translation
  314.                     tables available.  To toggle among them use the F4 key
  315.                     or click the mouse after pointing to the double arrow
  316.                     icon (fourth row at the left).
  317.  
  318.                     BLOCK ICON - The block icon at the right of the fifth
  319.                     line is for selecting a block with the mouse.
  320.  
  321.                                     THE SSG EDITOR
  322.  
  323.           Now that you are familiar with the STATUS BOX, let us explore
  324.           SSG's basic editing operations.
  325.  
  326.           Writing a character or symbol:
  327.  
  328.                To write a character or symbol at the current cursor
  329.                position, press the key that corresponds to the desired
  330.                symbol or character.  The symbol or character written to the
  331.                screen will depend on the current keyboard translation
  332.                table.  The cursor will advance one character position to
  333.                the direction indicated by the cursor increment icon in the
  334.                STATUS BOX.  If you have a mouse you can "pick" a desired
  335.                character or symbol from the STATUS BOX and write it to the
  336.                screen location where the mouse is clicked.  The symbol you
  337.  
  338.                     SSG Version 3.0 - Reference Manual - Page -3-
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.                have selected will appear in the current character box at
  347.                the right of the STATUS BOX's third line.  This will remind
  348.                you of what is the selected a symbol.  To "un-select" the
  349.                character, click the mouse's left button at current
  350.                character box.  If you do not have a mouse, you can "pick" a
  351.                character or symbol by placing the text cursor over the
  352.                character and pressing SHIFT+F4.
  353.  
  354.           Moving the cursor:
  355.  
  356.                The cursor can be moved by using the arrow keys.  The Home,
  357.                End, PgUp and PgDn keys move the cursor diagonally.  The F5,
  358.                F6, F7, F8 and TAB keys move the cursor several spaces at a
  359.                time.  You can place the text cursor to the current mouse
  360.                cursor position by pressing the right mouse button while
  361.                holding the left button pressed.
  362.  
  363.           Changing the cursor movement direction:
  364.  
  365.                After writing a character the cursor will move in the
  366.                direction indicated by the cursor movement icon (an arrow
  367.                next to the text cursor position display).  You can change
  368.                the default right direction by pressing F3 or by clicking
  369.                the left button after pointing at this icon.
  370.  
  371.           Block operations:
  372.  
  373.                SSG's most powerful editing operations are performed using
  374.                marked blocks.  Once a block is marked you can move, edit,
  375.                color, etc. the information inside the block.
  376.  
  377.                Marking Blocks:
  378.  
  379.                     With the keyboard:
  380.  
  381.                     Press F10 (Mark Block).  The cursor size changes to a
  382.                     block and the STATUS BOX will disappear.  Move the
  383.                     cursor to one of the block corners.  Press ENTER, the
  384.                     cursor will stop blinking.  Now use the cursor movement
  385.                     keys to enlarge the highlighted area to the desired
  386.                     size.  Press ENTER and the block is marked.  A block
  387.                     remains marked until you mark a new block.
  388.  
  389.                     With the mouse:
  390.  
  391.                     Click the mouse left button after pointing to the Block
  392.                     Icon.  The STATUS BOX will disappear from the screen. 
  393.                     Move the mouse cursor to one of the block corners. 
  394.                     Press the mouse's left button and, without releasing
  395.                     it, drag the mouse to the block's opposite corner. 
  396.                     Release the mouse button and the block is marked.
  397.  
  398.                     SSG Version 3.0 - Reference Manual - Page -4-
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.                                       SSG MENUS
  407.  
  408.           Main Menu
  409.  
  410.           To select the Main Menu press the ALT+M keyboard combination or
  411.           click your mouse after pointing to the Main keyword in the STATUS
  412.           BOX.  When you select this option the following menu will pop in
  413.           a window:
  414.  
  415.  
  416.                                   +-----|Main|-----+
  417.                                   |  Load          |
  418.                                   |  Save          |
  419.                                   |  New           |
  420.                                   |                |
  421.                                   |  Import ASCII  |
  422.                                   |  Save ASCII    |
  423.                                   |  Save SSG 1.0  |
  424.                                   |                |
  425.                                   |  Quit          |
  426.                                   |  DOS Shell     |
  427.                                   |                |
  428.                                   |  Options       |
  429.                                   +----------------+
  430.  
  431.  
  432.                The available options are:
  433.  
  434.                Load
  435.  
  436.                Permits you to load screens saved in SSG compatible file
  437.                format.  A file box will appear showing all files that match
  438.                the search string, sorted by name and extension. 
  439.                Subdirectories will be preceded by "<".  If you select a
  440.                subdirectory, it will be added to the search string.  You
  441.                can edit the search string at any time.  The search string
  442.                initially is "*.SSG" (or the default extension you have set
  443.                with "Options").
  444.  
  445.                To load a file you first highlight its filename using the
  446.                arrow keys or your mouse and the press ENTER or click your
  447.                mouse after pointing to the "LOAD" button.  You can also
  448.                select a file by double clicking your mouse after pointing
  449.                to the desired name.  You can cancel the operation by
  450.                pressing the ESC key or clicking the mouse after pointing to
  451.                the CANCEL button.
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.                     SSG Version 3.0 - Reference Manual - Page -5-
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.                Save
  467.  
  468.                SSG can save your screen files with its color information. 
  469.                Enter the file name and path.  SSG will warn you if a file
  470.                with the same name already exists.  If you had set the
  471.                "Create Backup" option (see "Options"), SSG renames the old
  472.                copy with the .BAK extension.  If you don't specify an
  473.                extension SSG adds the default extension specified with
  474.                "Default Extension" (see "Options").  If you do not want an
  475.                extension add a period to the end of its name.
  476.  
  477.                New
  478.  
  479.                Erase the buffer contents and start a new screen.  All the
  480.                screen information will be lost unless you save it to disk.
  481.  
  482.                Import ASCII
  483.  
  484.                You can import text information or screens prepared with
  485.                your favorite text editor.  This option will let you import
  486.                information stored in ASCII format to SSG.
  487.  
  488.                Save ASCII
  489.  
  490.                The block you mark can be saved in the ASCII format to a
  491.                disk file.  This option is very useful for documenting your
  492.                programs.
  493.  
  494.                Save SSG 1.0
  495.  
  496.                Version 3.X of SSG use a different file format than Version
  497.                1.X.  SSG files now contain a header with the screen mode
  498.                information, character tables and are compressed.  SSG will
  499.                recognize the screen files created by previous versions of
  500.                SSG.  Use this option if you want to save the files in the
  501.                older format.  Please refer to Appendix "A" for a complete
  502.                description of SSG file formats.
  503.  
  504.                Quit
  505.  
  506.                Use this option to quit SSG.  If the screen contents or the
  507.                generated source code have not been saved you will be
  508.                prompted if you want to do so before exiting.
  509.  
  510.                DOS Shell
  511.  
  512.                Use this option to temporarily shell to DOS.  To return to
  513.                SSG type "EXIT" at the DOS prompt line.
  514.  
  515.  
  516.  
  517.  
  518.                     SSG Version 3.0 - Reference Manual - Page -6-
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.                Options
  527.  
  528.                When this option is selected the following options screen
  529.                shows up.  In this screen you can set the default file
  530.                Load/Save options.  You will be able to specify the default
  531.                extension for SSG and text files and whether you want or not
  532.                to make backup of files.  You will also be able to define
  533.                the colors that will be used in SSG.
  534.  
  535.  
  536.           +---------------------------------------------------------------+
  537.           |                        - SSG OPTIONS -                        |
  538.           |                                                               |
  539.           | Default Extension: SSG     Normal Color     Highlight Color   |
  540.           |                                                               |
  541.           |   ASCII Extension: TXT     Reverse Color    Workspace Color   |
  542.           |                                                               |
  543.           | (x) Create Backup files                - OK -                 |
  544.           +---------------------------------------------------------------+
  545.  
  546.           Edit Menu
  547.  
  548.           To select the Edit Menu press the ALT+E keyboard combination or
  549.           click your mouse after pointing to the Edit keyword in the STATUS
  550.           BOX.  When you select this option the following menu will pop in
  551.           a window:
  552.  
  553.  
  554.                                 +-------|Edit|------+
  555.                                 |  Center Block     |
  556.                                 |  Copy Block       |
  557.                                 |  Delete Block     |
  558.                                 |  Fill Block       |
  559.                                 |  Move Block       |
  560.                                 |  Shadow Block     |
  561.                                 |  Transfer Block   |
  562.                                 |                   |
  563.                                 |  Draw Box         |
  564.                                 |  Draw Line        |
  565.                                 |  Draw Box Line    |
  566.                                 +-------------------+
  567.  
  568.                Center Block
  569.  
  570.                This option is used to center the marked block.  When you
  571.                select this option a window will pop into the screen
  572.                prompting you how to center the block.  The options are
  573.                Horizontal, Vertical or Both.  After making a selection the
  574.                marked block will be highlighted, press ENTER or the mouse's
  575.                left button to center it, you can cancel the operation by
  576.                pressing ESC or the mouse's right button.
  577.  
  578.                     SSG Version 3.0 - Reference Manual - Page -7-
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.                Copy Block
  587.  
  588.                You can make copies of a block and place the copy anywhere
  589.                in the screen.  To perform this operation select "Copy
  590.                Block" from the menu.  Move the copied block to the desired
  591.                position using the cursor movement keys and press ENTER. 
  592.                With the mouse, press the mouse's left button and drag the
  593.                block to it's new position.
  594.  
  595.                Delete Block
  596.  
  597.                This option will delete all the information included in the
  598.                marked block, clearing the area.  You can also use this
  599.                option to change the color of the marked area.  To change
  600.                the area color, select the color you want using the "Select
  601.                Color" option of the Video Menu and then delete the block. 
  602.                As with most block operations the marked block will be
  603.                highlighted.  Press ENTER or the mouse's left button to
  604.                delete the block or press ESC or the mouse's right button to
  605.                cancel.  The block will be painted with the selected color
  606.                (all the information inside the block will be erased).
  607.  
  608.                Fill Block
  609.  
  610.                This option will let you fill the block with a selected
  611.                character.  You must first select the character to be used
  612.                for filling the block.  To select a character you can "pick"
  613.                it form the STATUS BOX with your mouse or pressing the
  614.                SHIFT+F4 key combination after placing the text cursor over
  615.                the desired character.  Then select the "Fill Block" option,
  616.                the STATUS BOX will disappear.  If you press ENTER of the
  617.                left mouse button the block will be filled, if you press ESC
  618.                or the right mouse button the operation will be canceled.
  619.  
  620.                Move Block
  621.  
  622.                You can move a block anywhere in the screen.  To perform
  623.                this operation select "Move Block" from the menu.  Move the
  624.                block to the desired position using the cursor movement keys
  625.                and press ENTER.  With the mouse, press the mouse's left
  626.                button and drag the block to it's new position.  Block
  627.                movement does not destroy the background.
  628.  
  629.                Shadow Block
  630.  
  631.                This option lets you add a shadow effect to the current
  632.                block.  When you select this option a window will pop with
  633.                the different shadow options available.  You can add a Solid
  634.                Shadow, XORed shadow with current color XORed or an XORed
  635.                shadow with the default color.
  636.  
  637.  
  638.                     SSG Version 3.0 - Reference Manual - Page -8-
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.                Transfer Block
  647.  
  648.                This option lets you transfer a block from the current
  649.                screen to the alternate screen.  The alternate screen is
  650.                selected from the Video Menu.  To transfer a block, switch
  651.                screens and then select the Transfer Block option.  The
  652.                block will be copied to the alternate screen.
  653.  
  654.                Draw Box
  655.  
  656.                This option lets you draw a box around the marked block.  A
  657.                window will pop into the screen showing the different kinds
  658.                of frames available.  Select one by moving the little arrow
  659.                above the boxes using the arrow keys or by clicking the
  660.                mouse at the desired type of box.  The Box will appear.  To
  661.                accept it press ENTER or click the mouse's left button.  If
  662.                you press ESC or click the mouse's right button the box will
  663.                disappear.
  664.  
  665.                Draw Line
  666.  
  667.                This option will permit you to draw a single line (or the
  668.                character or symbol selected).  Mark the block area with one
  669.                column position (for vertical lines) or one row position
  670.                (for horizontal lines).
  671.  
  672.                Draw Box Line
  673.  
  674.                This option will permit you to draw lines inside boxes. 
  675.                Mark the area where the line is to be drawn.  The line will
  676.                be drawn with the correct line termination characters.
  677.  
  678.           Source Menu
  679.  
  680.           To select the Source Menu press the ALT+S keyboard combination or
  681.           click your mouse after pointing to the Source keyword in the
  682.           STATUS BOX.  When you select this option the following menu will
  683.           pop in a window:
  684.  
  685.                              +---------|Source|---------+
  686.                              |  Define Color Variables  |
  687.                              |                          |
  688.                              |  Generate Screen         |
  689.                              +--------------------------+
  690.  
  691.                Define Color Variables
  692.  
  693.                This option will permit you to set the color variables to be
  694.                used with the generated program.  The following dialog box
  695.                will pop into the screen:
  696.  
  697.  
  698.                     SSG Version 3.0 - Reference Manual - Page -9-
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.                            +-----------------------------+
  707.                            |  Defined color variables:   |
  708.                            |                             |
  709.                            |  Color3                     |
  710.                            |  Color4                     |
  711.                            |  HColor                     |
  712.                            |  NColor                     |
  713.                            |  RColor                     |
  714.                            |                             |
  715.                            |                             |
  716.                            |                             |
  717.                            |                             |
  718.                            |                             |
  719.                            +-----------------------------+
  720.                            |     - ADD -      - EDIT -   |
  721.                            |                             |
  722.                            |    - DELETE -    - OK -     |
  723.                            +-----------------------------+
  724.  
  725.                The window will contain a list of the defined color
  726.                variables.  You can add, edit or delete color variables to
  727.                the list.  When you select the ADD option, you will be
  728.                prompted for a variable name.  After typing the variable
  729.                name a Color Selection Menu will appear in the screen.  Use
  730.                your keyboard or the mouse to select the desired color.  The
  731.                new variable will be added to the list.  With the EDIT
  732.                option, you can change a selected color variable.  You will
  733.                be prompted for a variable name and the color selection
  734.                process is as for the ADD option.  The DELETE option will
  735.                delete the selected variable from the list.  The OK option
  736.                will remove the window from the screen and will save the
  737.                color variables.
  738.  
  739.                When SSG generates source code it can write the actual color
  740.                values or use predefined variables (see GENERATE SOURCE). 
  741.                The following default variables have been defined: NColor
  742.                (white characters on a black background), RColor (black
  743.                characters on a white background) and HColor (highlighted
  744.                white characters on a black background).  These variables
  745.                names will be used by SSG when generating the source code. 
  746.                If you have used a color that has not been defined, SSG will
  747.                write "unknown_?" (the "?" being the actual color value) to
  748.                your source code.
  749.  
  750.                Generate Screen
  751.  
  752.                This option is used for beginning the program generation
  753.                process.  The following dialog box will appear in the
  754.                screen:
  755.  
  756.  
  757.  
  758.                     SSG Version 3.0 - Reference Manual - Page -10-
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.                           +-------------------------------+
  767.                           |  Generate coordinates using:  |
  768.                           |                               |
  769.                           |   (X) Actual coordinates      |
  770.                           |   ( ) #define                 |
  771.                           +-------------------------------+
  772.                           |  Generate colors using:       |
  773.                           |                               |
  774.                           |   (X) Predefined variables    |
  775.                           |   ( ) Actual values           |
  776.                           +-------------------------------+
  777.                           |                               |
  778.                           |   ( ) Add headers files       |
  779.                           |   ( ) Add Color variables     |
  780.                           |                               |
  781.                           |      - OK -    - CANCEL -     |
  782.                           +-------------------------------+
  783.  
  784.                This dialog box contains the general information about the
  785.                way the source code will be generated.  The default options
  786.                are marked with a check mark.  To toggle an option on or off
  787.                press the SPACEBAR or click the left mouse button after
  788.                placing the mouse cursor over the desired option.  With the
  789.                keyboard, use TAB or SHIFT+TAB to move between options. 
  790.                When you have made your selections move the cursor to the OK
  791.                button and press ENTER (or click the left mouse button). 
  792.                The options are:
  793.  
  794.                     Generate coordinates using:
  795.  
  796.                     You can generate the source file using actual screen
  797.                     position coordinates or relative coordinates.  By
  798.                     selecting the #define option, SSG will write a define
  799.                     statement with the relative position information.  You
  800.                     can later modify this define to change the position of
  801.                     your objects.
  802.  
  803.                     Generate colors using:
  804.  
  805.                     This option lets you select how the color values will
  806.                     be written to your source files.  By selecting the
  807.                     Predefined Variables Option the instructions will be
  808.                     written using the previously defined color variables.
  809.                     By selecting the Actual Values Option the instructions
  810.                     will be written using the actual color values of the
  811.                     screen (see "Define Color Variables").
  812.  
  813.                     Add headers files
  814.  
  815.                     When this option is tagged your source file will
  816.                     contain the SCL1 #include headers.
  817.  
  818.                     SSG Version 3.0 - Reference Manual - Page -11-
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.                     Add Color variables
  827.  
  828.                     When this option is tagged the previously defined color
  829.                     variables will be written to your source file.
  830.  
  831.                Generating Source Files
  832.  
  833.                Once you have specified the Source-Generation options the
  834.                Source Generation Menu will be presented in your screen.  It
  835.                has four options:
  836.  
  837.                     Add object
  838.  
  839.                     Select this option to define an object in your screen.
  840.                     An object can be a window, a menu, a string, a field,
  841.                     etc.  SSG will present a list of supported objects for
  842.                     selection.
  843.  
  844.                     Done
  845.  
  846.                     Select this option when no more objects need to be
  847.                     defined.
  848.  
  849.                     Redo
  850.  
  851.                     Discard the last defined object.
  852.  
  853.                     View
  854.  
  855.                     Select this option to view the source code being
  856.                     generated by SSG.
  857.  
  858.                When you select the "Add Object" option, an object list
  859.                appears in the center of the screen.  The list contains the
  860.                different functions the SSG can program for you.  The source
  861.                code will be written exactly as you instruct SSG.  You have
  862.                to be careful to select the desired function in the correct
  863.                order.
  864.  
  865.                When you select an object from this list, SSG will prompt
  866.                you for the necessary information, such as; marking the
  867.                affected area, indicating the colors, etc.
  868.  
  869.                SSG will write the source code using the SCL1 functions. 
  870.                The available objects refer to these functions.  Refer to
  871.                the SCL1 reference manual for a detailed description of each
  872.                supported function.
  873.  
  874.  
  875.  
  876.  
  877.  
  878.                     SSG Version 3.0 - Reference Manual - Page -12-
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.                The available objects are:
  887.  
  888.                     BigCursor - Writes the source code for changing the
  889.                     cursor size to a block.
  890.  
  891.                     Box - Writes the source code for drawing a box, SSG
  892.                     will read from the screen the frame type and box
  893.                     position.  You will be prompted to mark the box area. 
  894.                     Various options are available:
  895.  
  896.                          Box - plain box.
  897.  
  898.                          Box (Grow) - box that will grow.
  899.  
  900.                          Box (Shadow) - box with shadow effect.
  901.  
  902.                          Box (Sound) - box drawn with sound effect.
  903.  
  904.                          Box (Grow+Shadow) - growing box with shadow
  905.                          effects.
  906.  
  907.                          Box (Grow+Sound) - growing box with sound effects.
  908.  
  909.                          Box (Grow+Shadow+Sound) - growing box with both
  910.                          shadow and sound effects.
  911.  
  912.                     Box Line - Writes the data and call to the DrawBoxLine
  913.                     function according to the marked area.  This will draw
  914.                     a line with correct termination characters inside a
  915.                     Box.  SSG will read the corresponding line type from
  916.                     the screen.
  917.  
  918.                     Calendar - Writes the source code for the structure and
  919.                     a call to the calendar function with the C_RESET,
  920.                     C_DRAW and C_BROWSE messages.
  921.  
  922.                     Calendar (structure) - Writes only the Calendar
  923.                     structure according to the position and color
  924.                     information selected.
  925.  
  926.                     Character Set - Writes a routine that will include a
  927.                     modified character set to you program.  If you have not
  928.                     modified any character set, a message stating so will
  929.                     be presented in the screen.
  930.  
  931.                     Clear Area - Writes a Cls function to clear a screen
  932.                     area.  SSG will determine the area coordinates from the
  933.                     area you mark when prompted.
  934.  
  935.                     CursorOff - Writes a CursorOff function call.
  936.  
  937.  
  938.                     SSG Version 3.0 - Reference Manual - Page -13-
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.                     CursorOn - Writes a CursorOn function call.
  947.  
  948.                     DrawLine - Writes the data and call to the DrawLine
  949.                     function according to the marked area.
  950.  
  951.                     Fields - Writes the required structure and function
  952.                     call to make a data entry screen using the Fields
  953.                     function.  You will first be prompted if you want to
  954.                     create a window.  If you accept this option then SSG
  955.                     will guide you through this process as explained under
  956.                     the Window option below.  SSG will prompt you to mark
  957.                     each field prompt and input area.  A dialog box will be
  958.                     presented with the types of characters options for the
  959.                     defined field.
  960.  
  961.                           +--------------------------------+
  962.                           | Type of characters to accept:  |
  963.                           |                                |
  964.                           |      ( ) Any                   |
  965.                           |      ( ) Letters               |
  966.                           |      ( ) Digits                |
  967.                           |      ( ) Real numbers          |
  968.                           |      ( ) Exponential           |
  969.                           |      ( ) Spanish               |
  970.                           |      ( ) Punctuation           |
  971.                           |      ( ) Path & Filename       |
  972.                           |      ( ) Filename              |
  973.                           |      ( ) DOS Search            |
  974.                           |      ( ) Capitalize            |
  975.                           |                                |
  976.                           |           - OK -               |
  977.                           +--------------------------------+
  978.  
  979.                     You will be asked if you want to define more fields. 
  980.                     If you want to include a validation or help function
  981.                     you must add the function's name to the finished source
  982.                     code.
  983.  
  984.                     Fields2 - Writes the required structure and function
  985.                     call to make a data entry screen using the Fields2
  986.                     function.  This option works similar to the Fields
  987.                     option described above.  SSG will prompt you to
  988.                     indicate each field type, then it will prompt for the
  989.                     field information in a pop-up window.
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.                     SSG Version 3.0 - Reference Manual - Page -14-
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.                 +----------------------------------------------------+
  1007.                 |  Select field type:                                |
  1008.                 | +------------------------------------------------+ |
  1009.                 | |Calendar                                        | |
  1010.                 | |LineEditor                                      | |
  1011.                 | |ListWindow                                      | |
  1012.                 | |MouseButton                                     | |
  1013.                 | |ScrollWindow                                    | |
  1014.                 | |Select                                          | |
  1015.                 | |TagItem                                         | |
  1016.                 | +------------------------------------------------+ |
  1017.                 |                                                    |
  1018.                 |            Press - TAB - to view screen.           |
  1019.                 |----------------------------------------------------|
  1020.                 | Last defined object:                               |
  1021.                 | InitWData(&scr0_wd0,NColor,0x0,5,25,14,44,NColor," |
  1022.                 +----------------------------------------------------+
  1023.  
  1024.                     You will be asked if you want to define more fields. 
  1025.                     If you want to include a validation or help function
  1026.                     you must add the function's name to the finished source
  1027.                     code.
  1028.  
  1029.                     FileBox2 - Writes the required structure and function
  1030.                     call to make a directory File Box using the FileBox2
  1031.                     function.  You will be prompted to mark the display
  1032.                     area, colors and to indicate if you want to show
  1033.                     subdirectories, read only, hidden and system files in a
  1034.                     dialog box as follows:
  1035.  
  1036.                             +----------------------------+
  1037.                             | ─ FILEBOX INITIALIZATION ─ |
  1038.                             |                            |
  1039.                             |      Display Files:        |
  1040.                             |                            |
  1041.                             |     ( ) Subdirectories     |
  1042.                             |     ( ) Read Only          |
  1043.                             |     ( ) Hidden             |
  1044.                             |     ( ) System             |
  1045.                             |                            |
  1046.                             |            - OK -          |
  1047.                             +----------------------------+
  1048.  
  1049.                     FileBox3 - Writes  the required structure and function
  1050.                     call to make a directory File Box using the FileBox3
  1051.                     function.  You will be prompted to mark the display
  1052.                     area and colors.  You will also be prompted to select
  1053.                     what to show; size, time, directories, hidden, date,
  1054.                     attributes, read only, system and how to sort the
  1055.                     display as follows.
  1056.  
  1057.  
  1058.                     SSG Version 3.0 - Reference Manual - Page -15-
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.                        +--------------------------------------+
  1067.                        |       FileBox3 Initialization        |
  1068.                        |                                      |
  1069.                        | Show:                                |
  1070.                        |                                      |
  1071.                        | (x) Size             (x) Date        |
  1072.                        | (x) Time             (x) Attributes  |
  1073.                        | (x) Directories      ( ) Read Only   |
  1074.                        | ( ) Hidden           ( ) System      |
  1075.                        |                                      |
  1076.                        | Sort by:                             |
  1077.                        |                                      |
  1078.                        | (x) Name   ( ) Extension    ( ) Size |
  1079.                        | ( ) Date   ( ) Attributes            |
  1080.                        |                                      |
  1081.                        | Sort Mode:                           |
  1082.                        |                                      |
  1083.                        | (x) Ascending         ( ) Descending |
  1084.                        | ( ) Directories first                |
  1085.                        |                                      |
  1086.                        |                - OK -                |
  1087.                        +--------------------------------------+
  1088.  
  1089.                     FillBlock - Writes the source code for a call to the
  1090.                     FillBlock function.  The fill character, position
  1091.                     coordinates and colors will be read from the screen.
  1092.  
  1093.                     Function Name - Prompts you for the function name and
  1094.                     inserts it with an opening brace.  For example, to
  1095.                     begin a program you can type "main" when prompted.
  1096.  
  1097.                     Function Close - Adds the closing brace to the source
  1098.                     code.
  1099.  
  1100.                     Get String - Writes a function call for getting a
  1101.                     string from the console using the GetString function.
  1102.  
  1103.                     HideMouse - Writes a HideMouse function call.
  1104.  
  1105.                     InitMouse - Writes a InitMouse function call.
  1106.  
  1107.                     LineEditor - Writes the structures and a call to the
  1108.                     LineEditor function.  You will be prompted to mark the
  1109.                     prompt and field areas and the field options.  SSG will
  1110.                     read from the screen the information needed to fill a
  1111.                     Line Editor structure.  An line editor initialization
  1112.                     screen will be displayed showing the principal
  1113.                     structure information.  In this screen you can either
  1114.                     accept or modify the line editor options.
  1115.  
  1116.  
  1117.  
  1118.                     SSG Version 3.0 - Reference Manual - Page -16-
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.                        +--------------------------------------+
  1127.                        |    - LINE EDITOR INITIALIZATION -    |
  1128.                        |                                      |
  1129.                        | Maximum number of chars: 28          |
  1130.                        |                                      |
  1131.                        | Type of chars to accept:             |
  1132.                        |                                      |
  1133.                        | (x) Any          ( ) Letters         |
  1134.                        | ( ) Digits       ( ) Real numbers    |
  1135.                        | ( ) Exponential  ( ) Spanish         |
  1136.                        | ( ) Punctuation  ( ) Path & Filename |
  1137.                        | ( ) Filename     ( ) DOS Search      |
  1138.                        | ( ) Capitalize                       |
  1139.                        |                                      |
  1140.                        | Mask chars:                          |
  1141.                        |                                      |
  1142.                        | (x) Accept mask chars   ( ) Discard  |
  1143.                        |                                      |
  1144.                        | Format chars:                        |
  1145.                        |                                      |
  1146.                        |      (x) Typeover    ( ) Insert      |
  1147.                        |                                      |
  1148.                        |                - OK -                |
  1149.                        +--------------------------------------+
  1150.  
  1151.                     LineEditor (structure) - Writes a LineEditor structure
  1152.                     according to the information supplied.
  1153.  
  1154.                     ListWindow - Writes the data and a call to the
  1155.                     ListWindow function.  You will be prompted to mark the
  1156.                     display area.
  1157.  
  1158.                     ListWindow (structure) - Writes a ListWindow structure
  1159.                     according to the information supplied.
  1160.  
  1161.                     Menu - Writes a call to the Menu function.  You will be
  1162.                     asked if you want to Save/Restore Screen, Draw Box and
  1163.                     or add a Shadow effect to the menu.  Then you will be
  1164.                     prompted to mark each of the menu selection items, to
  1165.                     indicate the menu structure name and the normal,
  1166.                     reverse and highlight colors.
  1167.  
  1168.                     MenuSystem - Writes the structures and a call to a
  1169.                     MenuSystem function.  You will be asked if you want a
  1170.                     shadow effect on the pull-down menus, if you will
  1171.                     access them with an ALT+key keyboard input and if you
  1172.                     want to draw lines in empty spaces.  You will then be
  1173.                     prompted to mark the top-bar menu area and each option. 
  1174.                     To permit good mouse interface mark each option with
  1175.                     one space before and after each option's text and do
  1176.                     not leave spaces between them.  You will be asked to
  1177.  
  1178.                     SSG Version 3.0 - Reference Manual - Page -17-
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.                     press the keyboard combination that will pull-down the
  1187.                     menu for that option.  Then you are required to mark
  1188.                     each pull down menu area and menu options.
  1189.  
  1190.                     MenuSystem (structure) - Writes a MenuSystem structure
  1191.                     according to the supplied information.
  1192.  
  1193.                     Modify Palette - Writes a function call to modify the
  1194.                     color palette according to the current selected
  1195.                     palette.
  1196.  
  1197.                     MouseMenu - Writes a structure and a call to the
  1198.                     MouseMenu function.  You will be prompted to mark each
  1199.                     of the menu selection items, the menu structure name
  1200.                     and colors.
  1201.  
  1202.                     MouseButton - Writes a call to the MouseButton
  1203.                     function.
  1204.  
  1205.                     MouseButton (structure) - Writes a MouseButton
  1206.                     structure according to the supplied information.
  1207.  
  1208.                     ScreenDump - Writes a set of character/attribute codes
  1209.                     for each of the screen positions enclosed in the marked
  1210.                     area.  With it you can write code to duplicate any text
  1211.                     screen.
  1212.  
  1213.                     ScrollWindow - Writes a call to the ScrollWindow
  1214.                     function.  You will be prompted to mark the display
  1215.                     area.
  1216.  
  1217.                     ScrollWindow (structure) - Writes a ScrollWindow
  1218.                     structure according to the information supplied.
  1219.  
  1220.                     Shadow (solid color) - Writes a function call to draw a
  1221.                     solid color shadow effect to the marked area.
  1222.  
  1223.                     Shadow (XOR'ed) - Writes a function call to draw an
  1224.                     XOR'ed shadow effect to the marked area.
  1225.  
  1226.                     ShowMouse - Writes code for displaying the mouse.
  1227.  
  1228.                     Select - Writes a call to the Select function.
  1229.  
  1230.                     Select (structure) - Writes a Select structure
  1231.                     according to the supplied information.
  1232.  
  1233.                     SetVideoMode - Writes a SetVideoMode function call.
  1234.  
  1235.                     Set EGA/VGA 25 - Writes the source code for changing
  1236.                     the video mode to 25 lines display.
  1237.  
  1238.                     SSG Version 3.0 - Reference Manual - Page -18-
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.                     Set VGA 28 -  Writes the source code for changing the
  1247.                     video mode to 28 lines display.
  1248.  
  1249.                     Set EGA/VGA 43/50 - Writes the source code for changing
  1250.                     the video mode to 43/50 lines display.
  1251.  
  1252.                     TagItem - Writes a call to the TagItem function.
  1253.  
  1254.                     TagItem (structure) - Writes a TagItem structure
  1255.                     according to the supplied information.
  1256.  
  1257.                     Window (create) - When this option is selected you will
  1258.                     be prompted to mark the windows' screen area.  The a
  1259.                     window initialization dialog box is shown where you can
  1260.                     select the following window options; Save/Restore Area,
  1261.                     Clear Area, Grow, Shrink, Draw Shadow and Draw Frame. 
  1262.                     After exiting this dialog box you will be asked if you
  1263.                     want to write a window title, if you select YES you
  1264.                     will be prompted to mark the title.
  1265.  
  1266.                             +---------------------------+
  1267.                             | - WINDOW INITIALIZATION - |
  1268.                             |                           |
  1269.                             |   ( ) Save/Restore Area   |
  1270.                             |   ( ) Clear Area          |
  1271.                             |   ( ) Grow                |
  1272.                             |   ( ) Shrink              |
  1273.                             |   ( ) Draw Shadow         |
  1274.                             |   ( ) Draw Frame          |
  1275.                             |                           |
  1276.                             |           - OK -          |
  1277.                             +---------------------------+
  1278.  
  1279.                     Window(destroy) - Will close (destroy) a previously
  1280.                     opened window and will restore the previous screen
  1281.                     contents.
  1282.  
  1283.                     WriteChar(s) - Writes a function call to the WriteChar
  1284.                     function.  The code written will select the character
  1285.                     at the cursor position.
  1286.  
  1287.                     WriteScreen - Writes the source code to write a string
  1288.                     to the screen.
  1289.  
  1290.                When you have finished generating your source code you can
  1291.                exit the "Source Generating Menu" by selecting the "Done"
  1292.                option.  If SSG has generated at least one line of source
  1293.                code, the "Save File", "View Source" and "New" options will
  1294.                be added to the SOURCE MENU.  This menu will now look like
  1295.                this:
  1296.  
  1297.  
  1298.                     SSG Version 3.0 - Reference Manual - Page -19-
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.                              +---------|Source|---------+
  1307.                              |  Define Color Variables  |
  1308.                              |                          |
  1309.                              |  Generate Screen         |
  1310.                              |                          |
  1311.                              |  Save File               |
  1312.                              |                          |
  1313.                              |  View Source             |
  1314.                              |                          |
  1315.                              |  New                     |
  1316.                              +--------------------------+
  1317.  
  1318.           Video Menu
  1319.  
  1320.           To select the Video Menu press the ALT+V keyboard combination or
  1321.           click your mouse after pointing to the Video keyword in the
  1322.           STATUS BOX.  Everything related to video modes, colors, etc. is
  1323.           found in this menu.
  1324.  
  1325.                              +---------|Video|----------+
  1326.                              |  Select Color            |
  1327.                              |  Pick Screen Color       |
  1328.                              |  Modify Block Color      |
  1329.                              |  Block to Default Color  |
  1330.                              |                          |
  1331.                              |  Switch Screen           |
  1332.                              |  View                    |
  1333.                              |                          |
  1334.                              |  40 columns x 25 lines   |
  1335.                              |  80 columns x 25 lines   |
  1336.                              |  80 columns x 28 lines   |
  1337.                              |  80 columns x 50 lines   |
  1338.                              |                          |
  1339.                              |  Modify Palette          |
  1340.                              |  Modify Character Set    |
  1341.                              +--------------------------+
  1342.  
  1343.                Select Color
  1344.  
  1345.                When you select this option a "Color Selection Table" will
  1346.                appear in the screen.  Use your keyboard or the mouse to
  1347.                select the desired color.
  1348.  
  1349.                Pick Screen Color
  1350.  
  1351.                This option lets you "pick" or select the default color from
  1352.                the screen by clicking the mouse or pressing ENTER after
  1353.                moving the cursor over the desired color.
  1354.  
  1355.  
  1356.  
  1357.  
  1358.                     SSG Version 3.0 - Reference Manual - Page -20-
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.                Modify Block Color
  1367.  
  1368.                When you select "Modify Block Color" option a window will
  1369.                appear.  As with most block operations the marked block will
  1370.                be highlighted, use the Up and Down arrow keys to change the
  1371.                foreground color.  By pressing TAB you can toggle between
  1372.                foreground and background.  You can toggle as many times as
  1373.                you like between foreground and background.  Press the
  1374.                Spacebar to toggle blinking on/off.  Press ENTER to exit
  1375.                with new colors or ESC to restore original colors.
  1376.  
  1377.                Block to Default Color
  1378.  
  1379.                This option will change a marked block's color to the
  1380.                default color.
  1381.  
  1382.                Switch Screen
  1383.  
  1384.                SSG has two working screens.  These screens can hold
  1385.                different information.  You can transfer information between
  1386.                screens.  Both screen need no to be configured in the same
  1387.                video mode.  With this option you can switch the active
  1388.                screen.
  1389.  
  1390.                View
  1391.  
  1392.                This option permits you to view the contents of both edit
  1393.                screens.  Both the mouse and the text cursors and the STATUS
  1394.                BOX are removed form the screen.
  1395.  
  1396.                Change Video Mode
  1397.  
  1398.                The video modes available in your system will be displayed
  1399.                as, for example: 40 columns x 25 lines, 80 columns x 25
  1400.                lines, 80 columns x 28 lines or 80 columns x 50 lines (for
  1401.                VGA displays).  You can pick any of the available video
  1402.                modes with your keyboard or mouse.
  1403.  
  1404.                Modify Palette
  1405.  
  1406.                You can visually change the background and foreground colors
  1407.                from the available palettes.  A dialog box will pop to the
  1408.                screen.  This box will contain different color bars with
  1409.                arrows at each side.  By clicking the mouse (or using the up
  1410.                and down cursor direction keys) at these arrows you can
  1411.                change the palette colors and watch the resulting color. 
  1412.                You can also type the palette number.
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.                     SSG Version 3.0 - Reference Manual - Page -21-
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.                Modify Character Set
  1427.  
  1428.                When this option is selected a character editor screen is
  1429.                presented, as shown below.  (Note: The screen has been
  1430.                edited so that it will fit in a printed page.  Non-printable
  1431.                extended ASCII characters are shown in above with asterisks
  1432.                "*").
  1433.  
  1434.           *********************************!"#$%&'()*+,-./0123456789:;<=>?
  1435.           @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~*
  1436.           ****************************************************************
  1437.           ****************************************************************
  1438.               7 6 5 4 3 2 1 0     ¢  ASCII CODE: 155       ≡ OK ≡
  1439.              +----------------+
  1440.            0 |                |     7 6 5 4 3 2 1 0        ≡ CANCEL ≡
  1441.            1 |      ▒▒▒▒      |    +----------------+
  1442.            2 |      ▒▒▒▒      | 0  |                |      ≡ DEFAULT ≡
  1443.            3 |    ▒▒▒▒▒▒▒▒    | 1  |      ▒▒▒▒      |
  1444.            4 |  ▒▒▒▒    ▒▒▒▒  | 2  |      ▒▒▒▒      |      ≡ TRANSFER ≡
  1445.            5 |  ▒▒▒▒          | 3  |    ▒▒▒▒▒▒▒▒    |
  1446.            6 |  ▒▒▒▒          | 4  |  ▒▒▒▒    ▒▒▒▒  |    7 6 5 4 3 2 1 0
  1447.            7 |  ▒▒▒▒          | 5  |  ▒▒▒▒          |   +----------------+
  1448.            8 |  ▒▒▒▒    ▒▒▒▒  | 6  |  ▒▒▒▒          | 0 |      ▒▒▒▒      |
  1449.            9 |    ▒▒▒▒▒▒▒▒    | 7  |  ▒▒▒▒    ▒▒▒▒  | 1 |      ▒▒▒▒      |
  1450.           10 |      ▒▒▒▒      | 8  |    ▒▒▒▒▒▒▒▒    | 2 |  ▒▒▒▒▒▒▒▒▒▒▒▒  |
  1451.           11 |      ▒▒▒▒      | 9  |      ▒▒▒▒      | 3 |▒▒▒▒            |
  1452.           12 |                |10  |      ▒▒▒▒      | 4 |▒▒▒▒            |
  1453.           13 |                |11  |                | 5 |  ▒▒▒▒▒▒▒▒▒▒▒▒  |
  1454.           14 |                |12  |                | 6 |      ▒▒▒▒      |
  1455.           15 |                |13  |                | 7 |      ▒▒▒▒      |
  1456.              +----------------+    +----------------+   +----------------+
  1457.           VGA 16 scan matrix       EGA 14 scan matrix    CGA 8 scan matrix
  1458.  
  1459.                The first four rows show the ASCII characters of the current
  1460.                character set.  All characters are shown in numerical order. 
  1461.                By using the up or down arrow keys you can select a
  1462.                character to edit or you can click the mouse after
  1463.                positioning the mouse cursor over the desired character.
  1464.  
  1465.                The four mouse buttons at the right let you accept, cancel,
  1466.                return to the default character set or transfer the edited
  1467.                character set to the alternate screen (see Transfer on the
  1468.                Edit Menu).
  1469.  
  1470.                The three boxes show a magnified representation of the three
  1471.                available character matrices, 16 scanlines for VGA, 14
  1472.                scanlines for EGA and 8 scanlines for CGA.  It is important
  1473.                to modify the three matrices if you are using a VGA display
  1474.                because the 28 line display uses the 14 scanline matrix and
  1475.                the 50 line display uses the 8 scanline matrix.
  1476.  
  1477.  
  1478.                     SSG Version 3.0 - Reference Manual - Page -22-
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.  
  1485.  
  1486.                You will need a mouse in order to edit characters since
  1487.                there is no practical way to perform this task using the
  1488.                keyboard.  To edit the characters use your mouse to position
  1489.                the cursor on the desired position and click the mouse to
  1490.                toggle the block on or off.  The modifications done to the
  1491.                characters will immediately show in its full size
  1492.                representation.
  1493.  
  1494.  
  1495.                                  STEP BY STEP EXAMPLE
  1496.  
  1497.           The best way to learn about is SSG is to actually build a screen
  1498.           and generate a program source.  The following instructions will
  1499.           guide you, step by step, through this process.  We will now do
  1500.           three step-by-step examples of programs built with the aid of
  1501.           SSG.
  1502.  
  1503.           Example #1 - Menu
  1504.  
  1505.           -    Start SSG.
  1506.  
  1507.           -    Move the cursor to row 1, column 4.
  1508.  
  1509.           -    Change the character translation table to the text mode (by
  1510.                pressing F4 or clicking your mouse after pointing to the
  1511.                arrow icon).  Type "MAIN MENU"
  1512.  
  1513.           -    Move the cursor to row 3, column 2.  Type "First Option". 
  1514.                Move the cursor to row 4, column 2 and type "Second Option. 
  1515.                Continue incrementing the row position, aligning the column
  1516.                position and type "Third Option", "Fourth Option" and "Fifth
  1517.                Option".  Move the cursor to row 9, column 2 and type
  1518.                "Exit".
  1519.  
  1520.           -    Mark a block to surround the Menu, leave space for drawing a
  1521.                box around it. The block should begin at row 0, column 0 and
  1522.                end at row 10, column 16 (or it can be marked from row 10,
  1523.                column 16 to row 0, column 0).
  1524.  
  1525.           -    From the "Edit Menu" select the "Draw Box" option.  Select a
  1526.                double line box frame.  Mark a new block starting at row 2,
  1527.                column 0 to column 16.  Select the "DrawBoxLine" option from
  1528.                the "Edit Menu".
  1529.  
  1530.           -    Mark the whole block again and select the "Center Block"
  1531.                option from the "Edit Menu".  Center the block both
  1532.                horizontally and vertically.
  1533.  
  1534.  
  1535.  
  1536.  
  1537.  
  1538.                     SSG Version 3.0 - Reference Manual - Page -23-
  1539.  
  1540.  
  1541.  
  1542.  
  1543.  
  1544.  
  1545.  
  1546.           -    Note that you have three options starting with the letter
  1547.                "F".  We must tell SSG what key will be used as a Hot-Key. 
  1548.                Select the "Select Color" option from the "Video Menu" and
  1549.                select black background with highlighted white characters. 
  1550.                Now move the cursor to the "F" in the "First Option" and
  1551.                type "F".  Do the same with the "S" in "Second Option", the
  1552.                "T" in "Third Option", the"o" in "Fourth Option", the "i" in
  1553.                "Fifth Option", and the "E" in "Exit".
  1554.  
  1555.           -    Now we are ready to generate the source code.  Select the
  1556.                "Generate Screen" option from the "Source Menu".  Tag the
  1557.                following options: Actual coordinates, Predefined variables,
  1558.                Add headers files and Add Color variables.
  1559.  
  1560.           -    You will be prompted to indicate the screen name, type Menu.
  1561.  
  1562.           -    Select the "Add Object" option.  Select the "Function Name"
  1563.                option, when prompted indicate the function name as "main".
  1564.           -    Select the "Add Object" option.  Select the "Clear Screen
  1565.                Area" option, when prompted mark a block from row 0, column
  1566.                0 to row 24, column 79 (the whole screen).
  1567.  
  1568.           -    Select the "Add Object" option.  Select the Box (grow)
  1569.                option.  Mark the box area when prompted.
  1570.  
  1571.           -    Select the "Add Object" option.  Select the "Box Line"
  1572.                option.  Mark the line area when prompted (the line that
  1573.                separates the "MAIN MENU" text from the rest of the menu.
  1574.  
  1575.           -    Select the "Add Object" option.  Select the "WriteScreen"
  1576.                option.  Mark the text "MAIN MENU".
  1577.  
  1578.           -    Select the "Add Object" option.  Select the "Menu" option. 
  1579.                Do not tag any of the display options presented in the Menu
  1580.                Initialization Prompt.  You will be asked to mark the menu
  1581.                area.  Then mark each menu option when prompted.  For a
  1582.                neater look make the length of each selection equal.  When
  1583.                you mark the last menu option ("Exit"), indicate that you do
  1584.                not want more options.  Then select the "Reverse Color".
  1585.  
  1586.           -    Select the "Add Object" option.  Select the "Function Close"
  1587.                option.
  1588.  
  1589.           -    You have finished writing the source code for the sample
  1590.                menu.  You can take a look at the source code by selecting
  1591.                the "View" option.  To finish the process select the "Done"
  1592.                option.  Save the source file as "SAMPMENU.C" and exit SSG. 
  1593.                It is recommended that the screen be saved for future
  1594.                practice.
  1595.  
  1596.  
  1597.  
  1598.                     SSG Version 3.0 - Reference Manual - Page -24-
  1599.  
  1600.  
  1601.  
  1602.  
  1603.  
  1604.  
  1605.  
  1606.           The source file you have just created should look like this:
  1607.  
  1608.           #include <scl1.h>
  1609.           #include <scl1keys.h>
  1610.  
  1611.           /***** Menu DATA *****/
  1612.  
  1613.           int NColor=7;
  1614.           int RColor=112;
  1615.           int HColor=15;
  1616.  
  1617.           char Menu_str0[]="MAIN MENU";
  1618.  
  1619.           struct MenuOpt Menu_mo0[]={
  1620.                10,33,"First Option ",'F',
  1621.                11,33,"Second Option",'S',
  1622.                12,33,"Third Option ",'T',
  1623.                13,33,"Fourth Option",'o',
  1624.                14,33,"Fifth Option ",'i',
  1625.                16,33,"Exit         ",'E',
  1626.                };
  1627.  
  1628.           /***** Menu CODE *****/
  1629.  
  1630.           main(void)
  1631.           {
  1632.           Cls(NColor,0,0,24,79);
  1633.           GSSBox(NColor,0,7,31,16,47,1,0,0);
  1634.           DrawBoxLine(NColor,0,9,31,9,47);
  1635.           WriteScreen(NColor,8,35,Menu_str0);
  1636.           Cls(NColor,7,31,17,46);
  1637.           Menu(NColor,RColor,NColor,6,Menu_mo0);
  1638.           }
  1639.  
  1640.           Example #2 - MenuSystem
  1641.  
  1642.           The screen you will need to practice how to generate a MenuSystem
  1643.           source code has been included in the screen file "SAMPMSYS.SSG".
  1644.  
  1645.           -    Load the SAMPMSYS.SSG screen file into SSG.
  1646.  
  1647.           -    Select the "Generate Screen" option from the "Source Menu". 
  1648.                Tag the following options:  Actual coordinates, Predefined
  1649.                variables, Add headers files and Add Color variables.
  1650.  
  1651.           -    You will be prompted to indicate the screen name, type Msys.
  1652.  
  1653.           -    Select the "Add Object" option.  Select the "Function Name"
  1654.                option, when prompted indicate the function name as "main".
  1655.  
  1656.  
  1657.  
  1658.                     SSG Version 3.0 - Reference Manual - Page -25-
  1659.  
  1660.  
  1661.  
  1662.  
  1663.  
  1664.  
  1665.  
  1666.           -    Select the "Add Object" option.  Select the "InitMouse"
  1667.                option, this will initialize your mouse if it is available.
  1668.  
  1669.           -    Select the "Add Object" option.  Select the "Clear Screen
  1670.                Area" option, when prompted mark a block from row 1, column
  1671.                0 to row 24, column 79.
  1672.  
  1673.           -    Select the "Add Object" option.  Select the "MenuSystem"
  1674.                option.
  1675.  
  1676.           -    You will be prompted to mark the bar menu area.  Mark the
  1677.                whole top line from column 0 to column 79.
  1678.  
  1679.           -    The Menu System Initialization window will pop into the
  1680.                screen.  Select the "Division Lines" and "ALT Sensitive"
  1681.                options and the "OK" button.
  1682.  
  1683.           -    You will be prompted to mark each of the bar menu options. 
  1684.                For a better interface start the block one character to the
  1685.                left and finish the block one character to the right of each
  1686.                bar menu option.  Mark the first option "File", you will be
  1687.                prompted to press the ALT+key combination that will call
  1688.                this option, press ALT+F.  A window will pop asking if you
  1689.                want more bar menu options.  Mark the other two bar menu
  1690.                options using the same procedure, this time indicating the
  1691.                ALT+O and ALT+E key combinations (for "Options" and "Exit").
  1692.  
  1693.           -    After finishing defining the bar menu you will be prompted
  1694.                to define each individual pull down menu.  The procedure is
  1695.                identical to that used in the Menu example.  You will be
  1696.                asked to indicate the colors to be used.
  1697.  
  1698.           -    After completing the Menu System definition select the
  1699.                "Function Close" object to finish the source code generation
  1700.                process.  The generated code will look like this:
  1701.  
  1702.           #include <scl1.h>
  1703.           #include <scl1keys.h>
  1704.  
  1705.           /***** Msys DATA *****/
  1706.  
  1707.           int NColor=7;
  1708.           int RColor=112;
  1709.           int HColor=15;
  1710.           int Mess;
  1711.  
  1712.           MSBar Msys_msb0[]={
  1713.                1,6,0x2100," File ",
  1714.                7,15,0x1800," Options ",
  1715.                16,21,0x1200," Exit ",
  1716.                };
  1717.  
  1718.                     SSG Version 3.0 - Reference Manual - Page -26-
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.           MSOptions Msys_mso0[]={
  1727.                2,2,"Open   ",'O',
  1728.                3,2,"Close  ",'C',
  1729.                5,2,"Delete ",'D',
  1730.                6,2,"Copy   ",'o',
  1731.                7,2,"Compare",'m',
  1732.                };
  1733.           MSOptions Msys_mso1[]={
  1734.                2,8,"Toggle Verify   ",'T',
  1735.                3,8,"Select Drive    ",'S',
  1736.                4,8,"Select Directory",'e',
  1737.                6,8,"Backup          ",'B',
  1738.                7,8,"Restore         ",'R',
  1739.                };
  1740.           MSOptions Msys_mso2[]={
  1741.                2,17,"Help    ",'H',
  1742.                4,17,"Continue",'C',
  1743.                6,17,"Quit    ",'Q',
  1744.                };
  1745.  
  1746.           char ms0_wbuf[378];
  1747.  
  1748.           MSWindow Msys_msw0[]={
  1749.                1,0,8,10,5,ms0_wbuf,Msys_mso0,
  1750.                1,6,8,25,5,ms0_wbuf,Msys_mso1,
  1751.                1,15,7,26,3,ms0_wbuf,Msys_mso2,
  1752.                };
  1753.  
  1754.           MSData Msys_msd0={112,15,7,112,15,Msys_msb0,Msys_msw0,3,0,0,0};
  1755.  
  1756.           /***** Msys CODE *****/
  1757.  
  1758.           main(void)
  1759.           {
  1760.           Cls(RColor,0,0,24,79);
  1761.           MenuSystem(MS_SHADOW_ON,(MSData *)0);
  1762.           MenuSystem(MS_LINE_ON,(MSData *)0);
  1763.           MenuSystem(MS_ALT_ON,(MSData *)0);
  1764.           MenuSystem(MS_DRAW,&Msys_msd0);
  1765.           do
  1766.                {
  1767.                if(Mess=KeyReady())
  1768.                     {
  1769.                     Mess=MenuSystem(MS_KEY,&Msys_msd0,Mess);
  1770.                     if(KeyReady())
  1771.                          GetKey();
  1772.                     }
  1773.                else
  1774.                     Mess=MenuSystem(MS_CHECK,&Msys_msd0);
  1775.                }while(Mess != MS_SELECT && Mess != MS_CANCEL);
  1776.           }
  1777.  
  1778.                     SSG Version 3.0 - Reference Manual - Page -27-
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.           You can now compile and run the sample Menu System.
  1787.  
  1788.           Example #3 - Fields2
  1789.  
  1790.           The screen you will need to practice how to generate a Field2
  1791.           source code has been included in the screen file "SAMPFLD2.SSG".
  1792.  
  1793.           -    Load the SAMPFLD2.SSG screen file into SSG.
  1794.  
  1795.           -    Select the "Generate Screen" option from the "Source Menu". 
  1796.                Tag the following options:  Actual coordinates, Predefined
  1797.                variables, Add headers files and Add Color variables.
  1798.  
  1799.           -    You will be prompted to indicate the screen name, type Fld.
  1800.  
  1801.           -    Select the "Add Object" option.  Select the "Function Name"
  1802.                option, when prompted indicate the function name as "main".
  1803.  
  1804.           -    Select the "Add Object" option.  Select the "Clear Screen
  1805.                Area" option, when prompted mark a block from row 0, column
  1806.                0 to row 24, column 79 (the whole screen).
  1807.  
  1808.           -    Select the "Add Object" option.  Select the "Box" object and
  1809.                mark the box area.  Then, using the "Box Line" object mark
  1810.                the interior line inside the box.
  1811.  
  1812.           -    Select the "Add Object" option.  Select the "WriteScreen"
  1813.                object and mark the "STUDENT RECORD" screen title.  Select
  1814.                this object again and mark the "Member of:" prompt.  (the
  1815.                other prompts will be defined when the corresponding fields
  1816.                are defined)
  1817.  
  1818.           -    Select the "Add Object" option.  Select the "Fields2"
  1819.                option.  You will be presented with a list of field types. 
  1820.                Select the "Line Editor" field type, you will be prompted to
  1821.                mark the prompt area, mark the prompt "Name:".  Then you
  1822.                will be prompted to mark the data entry area.  After marking
  1823.                the data entry area you will be prompted to tag the Line
  1824.                Editor options, since this field can have any characters and
  1825.                does not need any formatting, keep the default options.
  1826.  
  1827.           -    You will now need to define the "Student Number:" field by
  1828.                specifying a "Line Editor" field type.  You can specify in
  1829.                the "Line Editor" options that the field will contain only
  1830.                digits.
  1831.  
  1832.           -    The "Sex" field is of the "Select" type.  You will be
  1833.                prompted to mark the option strings.  Mark just the text and
  1834.                not the parenthesis.  When prompted if you want a field
  1835.                prompt, answer yes and mark the "Sex:" prompt.
  1836.  
  1837.  
  1838.                     SSG Version 3.0 - Reference Manual - Page -28-
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.           -    The next field is of the "Line Editor" type.  For this field
  1847.                you can specify a "Formatted" type field with the "/" format
  1848.                character.
  1849.  
  1850.           -    The "Member of:" field can have any number of options tagged
  1851.                so it is not of the Select type.  We must define each
  1852.                available option as a "TagItem" field type.  In this case we
  1853.                must select the "TagItem" field type four times and mark the
  1854.                field string for each option.
  1855.  
  1856.           -    The remaining fields are of the "MouseButton" type.  After
  1857.                selecting the MouseButton option you will be prompted to
  1858.                mark the area and the text for each option.
  1859.  
  1860.           -    After defining all three MouseButtons instruct SSG that you
  1861.                do not want any more fields.  The select the "Function
  1862.                Close" object.  The generated code will look like this:
  1863.  
  1864.           #include <scl1.h>
  1865.           #include <scl1keys.h>
  1866.  
  1867.           /***** Fld DATA *****/
  1868.  
  1869.           int NColor=7;
  1870.           int RColor=112;
  1871.           int HColor=15;
  1872.  
  1873.           char Fld_str0[]="STUDENT RECORD";
  1874.  
  1875.           char Fld_str1[]="Member of:";
  1876.  
  1877.           char Fld_ledbuf0[40];
  1878.  
  1879.           LEData Fld_led0={
  1880.  
  1881.           7,9,13,"Name:",112,9,19,39,39,CC_ANY,0,0,Fld_ledbuf0,0,0,0,2,1,0,
  1882.           0,0,0,0,0,0};
  1883.  
  1884.           char Fld_ledbuf1[7];
  1885.  
  1886.           LEData Fld_led1={7,11,13,"Student Number:",112,11,29,6,6,
  1887.           CC_DIGIT,0,
  1888.           0,Fld_ledbuf1,0,0,0,2,1,0,0,0,0,0,0,0};
  1889.  
  1890.           SData1 Fld_sd1_0[]={
  1891.                13,18,"Male",
  1892.                13,28,"Female",
  1893.                0};
  1894.  
  1895.           SData2 Fld_sd2_0={7,13,13,"Sex:",0,0,0,0};
  1896.  
  1897.  
  1898.                     SSG Version 3.0 - Reference Manual - Page -29-
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.           char Fld_ledbuf2[9]="  /  /  ";
  1907.  
  1908.           LEData Fld_led2={7,15,13,"Date
  1909.           Admitted:",112,15,28,8,8,CC_DIGIT,0,0,
  1910.           Fld_ledbuf2,"/",0,0,2,1,0,0,0,0,0,0,0};
  1911.  
  1912.           TIData Fld_ti0={7,12,48,0,"Honor Society",0,0};
  1913.  
  1914.           TIData Fld_ti1={7,13,48,0,"Basketball Team",0,0};
  1915.  
  1916.           TIData Fld_ti2={7,14,48,0,"Photography Club",0,0};
  1917.  
  1918.           TIData Fld_ti3={7,15,48,0,"Oratory Club",0,0};
  1919.  
  1920.           MBData Fld_mb0={7,112,17,17,17,31,17,17,"≡ NEXT RECORD
  1921.           ≡",0,0,0,0};
  1922.  
  1923.           MBData Fld_mb1={7,112,17,36,17,47,17,36,"≡ PREVIOUS ≡",0,0,0,0};
  1924.  
  1925.           MBData Fld_mb2={7,112,17,54,17,61,17,54,"≡ QUIT ≡",0,0,0,0};
  1926.  
  1927.           FData1 Fld_fd1_0[]={
  1928.                LINE_EDITOR,&Fld_led0,0,FieldCheck,
  1929.                LINE_EDITOR,&Fld_led1,0,FieldCheck,
  1930.                SELECT,Fld_sd1_0,&Fld_sd2_0,FieldCheck,
  1931.                LINE_EDITOR,&Fld_led2,0,FieldCheck,
  1932.                TAG_ITEM,&Fld_ti0,0,FieldCheck,
  1933.                TAG_ITEM,&Fld_ti1,0,FieldCheck,
  1934.                TAG_ITEM,&Fld_ti2,0,FieldCheck,
  1935.                TAG_ITEM,&Fld_ti3,0,FieldCheck,
  1936.                MOUSE_BUTTON,&Fld_mb0,0,FieldCheck,
  1937.                MOUSE_BUTTON,&Fld_mb1,0,FieldCheck,
  1938.                MOUSE_BUTTON,&Fld_mb2,0,FieldCheck,
  1939.                0};
  1940.  
  1941.           FData2 Fld_fd2_0;
  1942.  
  1943.           /***** Fld CODE *****/
  1944.  
  1945.           main(void)
  1946.           {
  1947.           Cls(NColor,0,0,24,79);
  1948.           Box(NColor,0,5,9,18,70);
  1949.           DrawBoxLine(NColor,0,7,9,7,70);
  1950.           WriteScreen(NColor,6,33,Fld_str0);
  1951.           WriteScreen(NColor,11,48,Fld_str1);
  1952.           Fields2(F_INIT,Fld_fd1_0,&Fld_fd2_0);
  1953.           Fields2(F_COLORS,Fld_fd1_0,&Fld_fd2_0,NColor,RColor);
  1954.           Fields2(F_DRAW,Fld_fd1_0,&Fld_fd2_0);
  1955.           Fields2(F_ACTIVE,Fld_fd1_0,&Fld_fd2_0);
  1956.           }
  1957.  
  1958.                     SSG Version 3.0 - Reference Manual - Page -30-
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.           As you can see, the example programs are almost completely
  1967.           written for you.  The file created by SSG will contain all the
  1968.           data and code needed to produce the screens.  Your program is
  1969.           ready to be compiled.  Of course, most of the times you will want
  1970.           to modify, add or continue programming using the structures
  1971.           created for you by SSG.
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985.  
  1986.  
  1987.  
  1988.  
  1989.  
  1990.  
  1991.  
  1992.  
  1993.  
  1994.  
  1995.  
  1996.  
  1997.  
  1998.  
  1999.  
  2000.  
  2001.  
  2002.  
  2003.  
  2004.  
  2005.  
  2006.  
  2007.  
  2008.  
  2009.  
  2010.  
  2011.  
  2012.  
  2013.  
  2014.  
  2015.  
  2016.  
  2017.  
  2018.                     SSG Version 3.0 - Reference Manual - Page -31-
  2019.  
  2020.  
  2021.  
  2022.  
  2023.  
  2024.  
  2025.  
  2026.                             Appendix "A" - SSG File Format
  2027.  
  2028.           Version 1.0 format:
  2029.  
  2030.                Data is organized as an exact copy of the video buffer. 
  2031.                Data starts at the screen top left corner, moves
  2032.                horizontally and down until all screen lines are covered. 
  2033.                Each character is followed by its color attribute.  Since
  2034.                only the 80 x 25 text mode is supported, these files are
  2035.                always 4,000 bytes in size.  SSG reads the data directly to
  2036.                an internal buffer that is then copied to the video buffer.
  2037.  
  2038.           Version 2.X format:
  2039.  
  2040.                Starting with version 2.0, SSG added support for several
  2041.                text video modes like 40 x 25, 80 x 43 and 80 x 50.  In
  2042.                order to include the video mode information, a header was
  2043.                added.  To reduce the file size a simple but effective
  2044.                compression algorithm was added.
  2045.  
  2046.                Version 2.X header:
  2047.  
  2048.                     bytes          purpose
  2049.  
  2050.                     0-3       Are used for file identification.  They are
  2051.                               set to SSG2.
  2052.  
  2053.                     4-5       Are read as an integer.  Bits 0-1 hold the
  2054.                               video mode:
  2055.  
  2056.                               0 = 40 x 25
  2057.                               1 = 80 x 25
  2058.                               2 = 80 x 50 (VGA)  or 80 x 43 (EGA)
  2059.                               3 = 80 x 28
  2060.  
  2061.                               bit 8 of the integer is set to 1 if data is
  2062.                               compressed or 0 if data is not compressed. 
  2063.                               Other bits are not used and are normally set
  2064.                               to 0.
  2065.  
  2066.                     6-7       Are read as an unsigned integer.  If the data
  2067.                               has been compressed this value equals the
  2068.                               size in bytes of the compressed color
  2069.                               information.
  2070.  
  2071.                     8-9       Are read as an unsigned integer.  If the data
  2072.                               has been compressed this value equals the
  2073.                               size in bytes of the compressed text
  2074.                               information.
  2075.  
  2076.  
  2077.  
  2078.                     SSG Version 3.0 - Reference Manual - Page -32-
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.                             Appendix "A" - SSG File Format
  2087.  
  2088.                     The following structure is used by SSG to read the file
  2089.                     header:
  2090.  
  2091.                     typedef struct{
  2092.                          char Id[4];              file ID
  2093.                          unsigned int mode;       video mode
  2094.  
  2095.                          unsigned int csize;      size in bytes of color
  2096.                                                   information
  2097.  
  2098.                          unsigned int tsize;      size in bytes of text
  2099.                                                   information
  2100.  
  2101.                          }FHEADER;
  2102.  
  2103.                     Version 2.X data:
  2104.  
  2105.                     Following the header, data is organized in one of two
  2106.                     ways.  If data is not compressed, the format is the
  2107.                     same as for Version 1.0.  If the data has been
  2108.                     compressed, the color information is stored first
  2109.                     followed by the text or character information.  The
  2110.                     decision to compress data is taken after the data is
  2111.                     initially compressed.  Under certain circumstances the
  2112.                     "compressed" data may be larger than uncompressed data,
  2113.                     in these cases data is stored uncompressed.
  2114.  
  2115.                     Reading color information:
  2116.  
  2117.                     The csize element in the file header holds how many
  2118.                     bytes of color information the file has.
  2119.  
  2120.                     The compression algorithm is very simple: the first
  2121.                     byte is an unsigned char value followed by a data
  2122.                     value.  The first byte tells us how many times the
  2123.                     following color value is repeated.  For example, if the
  2124.                     first byte is 80 and the second byte is 7 it means that
  2125.                     the first 80 characters will have a color attribute of
  2126.                     7.  Pair of bytes like this are repeated until the all
  2127.                     the screen color information is encoded.
  2128.  
  2129.                     Reading text information:
  2130.  
  2131.                     The tsize element in the file header holds the number
  2132.                     of bytes of text information in the file.  Data is
  2133.                     compressed using the same algorithm used for color
  2134.                     information.
  2135.  
  2136.  
  2137.  
  2138.                     SSG Version 3.0 - Reference Manual - Page -33-
  2139.  
  2140.  
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.                             Appendix "A" - SSG File Format
  2147.  
  2148.           Version 3.0 format:
  2149.  
  2150.                Starting with version 3.0, SSG supports character set and
  2151.                palette modification.  Palette information is stored in
  2152.                version 3.0 file header. Character modification information
  2153.                is stored after the header and before the color and text
  2154.                data.
  2155.  
  2156.                Version 3.0 header:
  2157.  
  2158.                Version 3.0 header is similar to Version 2.X header.  The
  2159.                first four bytes used for identification are now initialized
  2160.                to SSG3.  The palette information is stored after the tsize
  2161.                element in a 17 byte array (Palette entries 0-15 followed by
  2162.                border color).  The following structure is used:
  2163.  
  2164.                typedef struct{
  2165.                     char Id[4];              initialized to SSG3
  2166.                     unsigned int mode;
  2167.                     unsigned int csize;
  2168.                     unsigned int tsize;
  2169.                     char palette[17];        palette + border colors
  2170.                     }FHEADER3;
  2171.  
  2172.                Character set information:
  2173.  
  2174.                Following the header is the character set information.  The
  2175.                first two bytes that follow (integer) tell how many
  2176.                characters have been defined.  This value is 0 when no
  2177.                character has been redefined.
  2178.  
  2179.                Character definition follow these two bytes using the
  2180.                following format for each defined character:
  2181.  
  2182.                int            character's ASCII value
  2183.  
  2184.                char array     16 bytes array of the 8 x 16 (VGA) character
  2185.                               definition.
  2186.  
  2187.                char array     14 bytes array of the 8 x 14 (EGA) character
  2188.                               definition.
  2189.  
  2190.                char array     8 bytes array of the 8 x 8 (EGA) character
  2191.                               definition.
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.  
  2198.                     SSG Version 3.0 - Reference Manual - Page -34-
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.                             Appendix "A" - SSG File Format
  2207.  
  2208.                Reading text and color information:
  2209.  
  2210.                Text and color information is stored in the same format as
  2211.                in SSG 2.X files.  To calculate the offset at which text and
  2212.                color information begins you should add the size of the
  2213.                FHEADER3 structure plus the two bytes used to save the
  2214.                number of characters redefined plus 40 for each redefined
  2215.                character.
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257.  
  2258.                     SSG Version 3.0 - Reference Manual - Page -35-
  2259.  
  2260.  
  2261.  
  2262.  
  2263.  
  2264.  
  2265.  
  2266.                                        LICENSE
  2267.  
  2268.           SSG is a copyrighted material and is NOT a Shareware or User
  2269.           Supported product.  SSG is supplied to all registered users of
  2270.           the SCL1 library, as part of the registration package and should
  2271.           not be freely distributed or copied except for backup purposes. 
  2272.           All registered users are granted a non exclusive license to use
  2273.           this program for any use.  The Shareware version of the SCL1
  2274.           library (which does not include SSG) may be freely distributed.
  2275.  
  2276.           This program has been thoroughly tested and, to the best of our
  2277.           knowledge, perform as this documentation describe.  We cannot
  2278.           accept any responsibility for any problems which may occur
  2279.           through its use.  After examining this document and other
  2280.           included file, if you feel that this program is not suitable for
  2281.           your use, please do not use it.
  2282.  
  2283.                                       DISCLAIMER
  2284.  
  2285.           THIS SOFTWARE AND MANUAL ARE SOLD "AS IS" AND WITHOUT WARRANTIES
  2286.           AS TO PERFORMANCE OF MERCHANTABILITY OR ANY OTHER WARRANTIES
  2287.           WHETHER EXPRESSED OR IMPLIED.  BECAUSE OF THE VARIOUS HARDWARE
  2288.           AND SOFTWARE ENVIRONMENTS INTO WHICH THIS PROGRAM MAY BE PUT, NO
  2289.           WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE IS OFFERED.
  2290.  
  2291.           GOOD DATA PROCESSING PROCEDURE DICTATES THAT ANY PROGRAM BE
  2292.           THOROUGHLY TESTED WITH NON-CRITICAL DATA BEFORE RELYING ON IT. 
  2293.           THE USER MUST ASSUME THE ENTIRE RISK OF USING THE PROGRAM.  ANY
  2294.           LIABILITY OF THE SELLER WILL BE LIMITED EXCLUSIVELY TO PRODUCT
  2295.           REPLACEMENT OR REFUND OF PURCHASE PRICE.
  2296.  
  2297.           Feel free to send any comments or suggestions.  If you find any
  2298.           bugs please let us know so that they can be traced and fixed. 
  2299.           Please include with your comments any relevant information, such
  2300.           as; hardware configuration, description of the bug or problem and
  2301.           if possible a section of the problem code.  Write to:
  2302.  
  2303.                          José Rodríguez Alvira
  2304.                          El Monte Sur 190, Apt. B-342,
  2305.                          Hato Rey, Puerto Rico, 00918
  2306.  
  2307.           You can leave us a message through the Compuserve I.D. No.
  2308.           70262,1562 or BIX Name jalvira.
  2309.  
  2310.           The latest version of SCL1, sample programs and comments about
  2311.           these programs are available in:
  2312.  
  2313.                          TECH BBS (Sysop: José Romero)
  2314.  
  2315.                          (809)731-2322
  2316.  
  2317.  
  2318.                     SSG Version 3.0 - Reference Manual - Page -36-
  2319.  
  2320.  
  2321.  
  2322.  
  2323.  
  2324.  
  2325.  
  2326.           You do not have to be a registered member of this BBS to be able
  2327.           to download SCL1 files. If you call for the first time, after you
  2328.           answer the questionnaire you can locate SCL1 files in the FREE
  2329.           directory under the FILES menu.  Though new users have a 15
  2330.           minutes per call time restrictions, the files located in this
  2331.           directory can be downloaded even if they take longer than 15
  2332.           minutes to transfer.  In order to download more than one file use
  2333.           a batch type protocol.
  2334.  
  2335.           You can leave any comments, suggestions or questions in this BBS
  2336.           directed to JOSE ALVIRA or JOSE LEBRON. We will reply these
  2337.           messages in the same BBS.
  2338.  
  2339.  
  2340.  
  2341.  
  2342.  
  2343.  
  2344.  
  2345.  
  2346.  
  2347.  
  2348.  
  2349.  
  2350.  
  2351.  
  2352.  
  2353.  
  2354.  
  2355.  
  2356.  
  2357.  
  2358.  
  2359.  
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378.                     SSG Version 3.0 - Reference Manual - Page -37-
  2379.